refactoring code smells